package LBLD新算法;

import org.junit.Test;

import java.util.Arrays;
import java.util.Stack;

import static MyUtils.MHUtils.*;
import static MyUtils.MHMoban.*;

/*
    每个节点只处理自己（单cur思想）
    做完题一定写入表格
*/
public class 下一个更大元素lbld自己的题{
    @Test
    public void test() {
        int[] p = {2,1,2,4,3};
        int[] res = new int[p.length];
        Stack<Integer> s = new Stack<>();

        for (int i = p.length-1; i >=0; i--) {
            if(s.isEmpty()){
                //不含自己的下一个最大，没有就是-1
                res[i]=-1;
                s.push(p[i]);
            }else {
                while(!s.isEmpty() && p[i]>=s.peek()){
                    s.pop();
                }//w出
                if(s.isEmpty()){
                    res[i]=-1;
                    s.push(p[i]);
                }else if(p[i]<s.peek()){
                    res[i]=s.peek();
                    s.push(p[i]);
                }
            }
        }
        System.out.println(Arrays.toString(res));
    }
}
